home *** CD-ROM | disk | FTP | other *** search
-
-
-
- INDRA
- Working
- Paper
-
-
-
-
-
- INDRA Note 965
- TSIG 4.1
- IEN 154
- 7th August 1980
-
-
-
-
-
-
-
-
-
-
- Realization of the Yellow Book Transport Service Above TCP
-
- C. J. Bennett
-
-
-
-
-
- ABSTRACT: This note defines an
- enhancement of the service provided
- by the US DoD Standard Transmission
- Control Protocol (TCP) sufficient
- to meet the requirements of the UK
- Network Independent Transport
- Service (the Yellow Book). This
- note supersedes an earlier version
- (INDRA Note 959, TSIG 4.0 and IEN
- 153).
-
-
-
-
-
- Department of Computer Science
-
- University College London
-
-
-
-
-
-
-
-
-
- 1. Introduction
-
- This document defines a means of providing the Yellow
- Book Transport Service [1] above the DARPA Internet
- facilities, in particular TCP [2], so that this can
- then be used to support other services such as endpoint
- file transfer without requiring UK hosts to implement
- the Internet family of protocols. It assumes
- familiarity with both TCP and the Yellow Book.
-
- The basic approach taken is to enhance the TCP
- service along the lines suggested for enhancing X25 in
- Annex I of the Yellow Book, taking into account the
- different services provided by TCP. In addition, the
- note discusses how to integrate Yellow Book TCP so that
- it can run alongside ordinary TCP - an issue the Yellow
- Book ignores for Yellow Book X25.
-
-
- 2. Deficiencies of TCP
-
- A comparison of the services provided by TCP and
- those provided by the Yellow Book reveals that TCP is
- unable to support directly, either in whole or in part,
- the following Yellow Book features:
-
- (i) The RESET and ADDRESS primitives.
-
- (ii) The Yellow Book multiple-domain addressing
- structure. The TCP address space constitutes a
- single naming domain in Yellow Book terms.
- Consequently, features involving addressing -
- notably ACCEPT - are inadequately supported by
- TCP.
-
- (iii) Much of the subsidiary information provided
- with Yellow Book primitives. The fact that the
- source address provided with certain actions
- such as DISCONNECT is not provided is again a
- limitation of the global TCP naming domain. The
- Yellow Book 'Explanatory Text' parameters have
- no corresponding feature in TCP.
-
- (iv) The closest equivalent to Yellow Book EXPEDITED
- data - theoretically requiring a priority data
- channel - is TCP URGENT data. However, TCP
- URGENT data remains in sequence, and the URGENT
- pointer only marks the end of the data. Its
- beginning is not delimited.
-
- (v) The Yellow Book DISCONNECT is a full-duplex
- close, whereas the TCP CLOSE is only half-
- duplex. The TCP RESET is a unilateral close,
- used in error conditions. Connection closure
-
-
- Bennett 1 INDRA 965
-
- Yellow Book above TCP
-
-
-
- provides particularly subtle problems.
-
- Hence in order to provide a Yellow Book service above
- TCP an enhancement of TCP is necessary. The remainder
- of this document discusses such an enhancement.
-
-
- 3. Principles of the Enhancement
-
- The basic principles of the enhancement are as
- follows:
-
- (i) Where a TCP function corresponds directly to a
- Yellow Book function that TCP function is used
- directly.
-
- (ii) Where the Yellow Book function requires more
- information or action, the TCP function is
- associated with a TCP Control Message in a
- defined way. This message is a record of
- defined format containing the information
- required.
-
- (iii) Where there is no TCP function even remotely
- corresponding to the required Yellow Book
- function, a control message is defined which
- may be used by the source and destination
- processes if possible, and may be forwarded
- into other transport domains more capable of
- taking the appropriate action.
-
-
-
- 4. The Yellow Book TCP Enhancement
-
- 4.1 Distinguishing the Yellow Book TCP
-
- The services using the Yellow Book enhancement to the
- TCP will be identifiable through the TCP socket number
- used. These will be allocated for standard services as
- required.
-
-
- 4.2 Identification of Yellow Book TCP Messages
-
- The data stream is structured into records, which in
- turn are substructured depending on the record type.
- These records are independent of TCP letter indications
- as the latter are purely push delimiters.
-
-
-
-
- Bennett 2 INDRA 965
-
- Yellow Book above TCP
-
-
-
- The record structure proposed is as illustrated in
- Figure 1. Each record is prefaced by a single octet,
- known as the TYPE octet. This takes a value of 0 for
- data records and a value of 1 for command messages. All
- other values are undefined.
-
-
-
- +------+----- - - - - - ------+
- | TYPE | RECORD BODY |
- +------+----- - - - - - ------+
- |
- | /
- | | 0 = DATA
- |-------<
- | 1 = COMMAND
- \
-
- Figure 1: Letter Structure in Yellow Book TCP
-
-
-
- 4.3 Structure of TCP Data Messages
-
- A TCP Data Message is a Yellow Book TCP record of
- TYPE 0.
-
- Each record consists of a number of SUBRECORDS. Each
- subrecord consists of a header octet and a number of
- data octets, up to a limit of 127 octets.
-
- The subrecord header is a single octet. The high-
- order bit of this octet, if set to 1, declares that the
- current subrecord is the last subrecord of the current
- record. The remaining seven bits define the length in
- octets of the current record.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Bennett 3 INDRA 965
-
- Yellow Book above TCP
-
-
-
- This structure is illustrated in Figure 2.
-
- +-------- - - - - - - - - --------+
- | DATA MESSAGE |
- +-------- - - - - - - - - --------+
- / \
- / \
- / \
- / \
- +-------- - - + - - - - - - - + - - --------+
- | SUBRECORD 1 | ........... | SUBRECORD K | Data Record
- +-------- - - + - - - - - - - + - - --------+ Structure
- | \
- | \
- | \
- | \
- +--------+------ - - - - - -------+
- | HEADER | BODY | Subrecord Structure
- +--------+------ - - - - - -------+
- | \
- | \
- | \
- +-+-+-+-+-+-+-+-+
- | | C O U N T | Header Structure
- +-+-+-+-+-+-+-+-+
- |
- |--- EOR Bit
-
- Figure 2: TCP Data Message Structure
-
-
- 4.4 Structure of TCP Command Messages
-
- A TCP Command Message is a Yellow Book TCP record of
- TYPE 1.
-
- The first octet of the message defines the COMMAND
- CODE of the message. These codes are defined in
- subsequent sections, and have been chosen to correspond
- to the command codes of the X25 Command Messages.
-
- Following the command code is a number of PARAMETERS.
- The significance of these parameters is defined by
- their position in the parameter sequence for each
- command, and the command message is completed only when
- all parameters have been specified; thus no parameter
- may be omitted, though it may have a null value.
-
-
-
-
-
-
- Bennett 4 INDRA 965
-
- Yellow Book above TCP
-
-
-
- Most parameters have a free field format. For this
- reason each parameter is constructed of a number of
- FRAGMENTS. These fragments consist of a header byte
- and the body of the fragment, which may have a maximum
- length of 127 octets.
-
- The fragment header is a single octet. The high-order
- bit of this octet, if set to 1, declares that the
- current fragment is the last fragment of the current
- parameter. The remaining seven bits define the length
- in octets of the current fragment.
-
- This structure is summarised in Figure 3.
-
- +-------- - - - - - - - - --------+
- | COMMAND MESSAGE |
- +-------- - - - - - - - - --------+
- / \
- / \
- / \
- +------+-------- - - + - - - - - + - - -------+
- | CODE | PARAM 1 | ....... | PARAM N | Command
- +------+-------- - - + - - - - - + - - -------+ Structure
- / \
- / \
- / \
- / \
- +-------- - - + - - - - - + - - --------+
- | FRAG 1 | ....... | FRAG K | Parameter
- +-------- - - + - - - - - + - - --------+ Structure
- | \
- | \
- | \
- | \
- +--------+------ - - - - - -------+
- | HEADER | BODY | Fragment Structure
- +--------+------ - - - - - -------+
- | \
- | \
- | \
- +-+-+-+-+-+-+-+-+
- | | C O U N T | Header Structure
- +-+-+-+-+-+-+-+-+
- |
- |--- EOP Bit
-
- Figure 2: TCP Command Message Structure
-
-
-
-
-
-
- Bennett 5 INDRA 965
-
- Yellow Book above TCP
-
-
-
- A parameter with a null value is represented by a
- fragment header whose EOP bit is set to 1 and whose
- count field is set to 0. The rules governing the syntax
- of free-field parameters are the same as those defined
- in section 2.7 of the Yellow Book, based on the use of
- the IA5 character set, except where otherwise noted.
-
- The sole difference between this structure and the
- X25 Command Message structure is that the count field
- in the fragment header is extended by one bit - this
- bit is used for a specific purpose in X25 CONNECT
- messages which does not arise with the TCP. This
- doubles the maximum fragment size. Because of the
- similarity of structure the same terminology has been
- used, though the term 'fragment' is somewhat
- unfortunate in the DARPA context through its specific
- association with the Internet Datagram Protocol.
-
-
- 4.5 Yellow Book Commands and TCP
-
- The following general remarks apply to the following
- specification:
-
- (i) All codes are specified as decimal integers.
-
- (ii) All address fields include the appropriate TCP
- address components, specified as
- /<NET ID>+<INTERNET HOST ID>+<PORT NO>/, where
- the bracketed fields are the character strings
- of the octal representations of those TCP
- fields. Where a field consists of more than 8
- bits, it is further subdivided into eight bit
- units separated by commas for representational
- purposes. Thus, the NIFTP port (octal 10651)
- at ISIE (net 12, host 1, logical host 0, IMP
- 64) will be denoted by the string:
-
- /12+1,0,64+21,251/
-
- (iii) All command messages must be accompanied by a
- TCP end of letter at the end of the last
- fragment of the last parameter.
-
-
-
- 4.5.1 CONNECT
-
- The CONNECT command message is defined by the
- following code and parameters:
-
-
-
- Bennett 6 INDRA 965
-
- Yellow Book above TCP
-
-
-
- Code = 16
- Parameter 1: Called Address
- Parameter 2: Calling Address
- Parameter 3: Quality of Service
- Parameter 4: Explanatory Text
-
- This message will be preceded by the usual TCP
- three-way handshake. Where possible or appropriate, the
- quality of service parameter will be used to select TCP
- quality of service from the options defined in the TCP
- specification.
-
- The CONNECT message will be the first message sent by
- the calling party. It will be possible for the calling
- party to initiate the transfer of data before the
- arrival of an ACCEPT message.
-
-
- 4.5.2 ACCEPT
-
- The ACCEPT command message is defined by the
- following code and parameters:
-
- Code = 17
- Parameter 1: Recall Address
- Parameter 2: Quality of Service
- Parameter 3: Explanatory Text
-
- This message will be the first message sent by the
- called party after the three-way handshake, unless the
- call request was rejected (see DISCONNECT, below).
-
-
- 4.5.3 DISCONNECT
-
- The DISCONNECT command message is defined by the
- following code and parameters:
-
- Code = 18
- Parameter 1: Reason
- Parameter 2: Address of DISCONNECT Initiator
- Parameter 3: Explanatory Text
-
- The reason parameter is a single octet giving a
- machine-oriented encoding of the reason the DISCONNECT
- was initiated. The defined reasons are listed in
- Appendix B of the body of the Yellow Book. Parameter 2
- is included to cover the case where the DISCONNECT was
- initiated by some intermediate gateway (where 'gateway'
- is used in the Yellow Book sense).
-
-
-
- Bennett 7 INDRA 965
-
- Yellow Book above TCP
-
-
-
- DISCONNECT will always cause the TCP to issue an
- URGENT call. On receipt of a DISCONNECT message, no
- further data may be sent and all data currently queued
- for transmission should be flushed if possible. No
- data will be passed across to the user after a
- DISCONNECT has been issued.
-
- Beyond this, the exact DISCONNECT sequence used
- varies depending on the state of the connection, as
- follows:
-
- (i) If the DISCONNECT is being used to reject a
- CONNECT request, the DISCONNECT message will be
- followed by a TCP RESET. This will abort the
- TCP connection, flushing all outstanding data.
- No response is expected. The URGENT pointer
- points to the TCP RESET.
-
- (ii) In the normal case of closing an open
- connection, the DISCONNECT issued by the
- initiator will be followed by a TCP FIN. The
- remote party will respond with an optional
- DISCONNECT message accompanied by a FINACK and
- a FIN. The URGENT pointer points to the TCP
- FIN.
-
- (iii) For error terminations, a DISCONNECT message
- should be answered with a TCP RESET. The issuer
- of the DISCONNECT will also issue a TCP RESET
- after a timeout period, if a RESET has not
- already been received. The URGENT pointer
- points to the end of the DISCONNECT message.
-
-
-
- 4.5.4 DATA
-
- DATA is sent as a sequence of Yellow Book TCP data
- messages, as defined above.
-
-
- 4.5.5 PUSH
-
- The PUSH function is conveyed by use of the TCP EOL
- function, pointing to the data octet at which the PUSH
- was issued.
-
- Note that it is possible to collapse EOL indications,
- effectively combining PUSHes. Strictly speaking, the
- Yellow Book requires that a PUSH remains in sequence,
- but this is not necessary to obtain the required
-
-
- Bennett 8 INDRA 965
-
- Yellow Book above TCP
-
-
-
- effect. In order to propagate the PUSH, it is necessary
- that the TCP delivers EOL indications to the user
- process. The circumstances under which this occurs are
- currently unclear. It may be necessary in the future to
- define a PUSH command message.
-
-
- 4.5.6 EXPEDITED
-
- The EXPEDITED command message is defined by the
- following code and parameter:
-
- Code = 21
- Parameter 1: EXPEDITED data
-
- EXPEDITED data is accompanied by a TCP URGENT pointer
- pointing to the end of the message. There are no
- restrictions on the encoding of EXPEDITED data messages
- beyond the normal fragment structuring rules.
-
- It should be noted that this will cause the receiver
- of the URGENT to process all data up to the URGENT
- pointer in 'fast' mode, whether EXPEDITED or not. It
- may or may not be possible to deliver the EXPEDITED
- data to the user ahead of sequence. As noted above, TCP
- has no direct equivalent of a priority data channel,
- but the mechanism described at least allows the
- preservation of EXPEDITED data so that it may be passed
- as such in subsequent networks.
-
-
- 4.5.7 RESET
-
- The RESET command message is defined by the following
- code and parameters:
-
- Code = 19
- Parameter 1: Reason
- Parameter 2: Address of RESET Initiator
- Parameter 3: Explanatory Text
-
- TCP has no equivalent of the RESET function (a TCP
- RESET is something else entirely). Thus the only TCP
- action taken with a RESET message is to accompany it
- with an URGENT pointer pointing to the end of the RESET
- message.
-
- As with DISCONNECT, the defined RESET reasons are
- those listed in Appendix B of the main portion of the
- Yellow Book. The address parameter is again included to
- cater for the case where a RESET was initiated in some
-
-
- Bennett 9 INDRA 965
-
- Yellow Book above TCP
-
-
-
- intermediate network.
-
- A RESET may only be issued if the connection is fully
- open and there are no RESETs already outstanding. A
- RESET message must always be replied to with another
- RESET message, leaving the connection open, or with an
- error DISCONNECT message followed by a TCP RESET, which
- will abort the connection. All data and control
- messages, with the exception of DISCONNECT, received
- after a RESET has been issued and before a RESET reply
- has been received, will be discarded without informing
- the user. In the case of DISCONNECT, the connection
- will be considered as having closed in an abnormal
- state. If a DISCONNECT has been issued, a received
- RESET will be ignored.
-
- Where possible the issue of a RESET should cause the
- sender to flush its transmission buffers.
-
-
- 4.5.8 ADDRESS
-
- The ADDRESS command message is defined by the
- following code and parameters:
-
- Code = 20
- Parameter 1: Address
- Parameter 2: Address Qualifier
-
- The ADDRESS qualifier is a single octet parameter
- taking one of the values defined in the Yellow Book:
-
- 0: The message is passing towards the addressed
- object.
-
- 1: The message is passing away from the addressed
- object.
-
- 2: An addressing error has been detected.
-
- There is no associated TCP action taken with an
- ADDRESS message.
-
- The receiver of an ADDRESS message will perform the
- appropriate ADDRESS transformation as defined in the
- Yellow Book.
-
- It is recommended that the ADDRESS function should
- not be used.
-
-
- Bennett 10 INDRA 965
-
- Yellow Book above TCP
-
-
-
- 5. Conclusions
-
- One of the difficulties of writing a note such as
- this is that it is addressed to several audiences with
- different interests and not necessarily a great deal of
- overlap either in aim or in background.
-
- The immediate audience is the team at University
- College London who are involved in implementing a
- 'Protocol Convertor' to make possible direct access
- between hosts in Britain using the CCITT and UK
- national standards and the hosts in the US based on the
- DARPA Internet standards. For this audience, the
- document hopefully defines an answer to what will soon
- be a practical need, though it is a matter for
- continuing debate to what extent the full enhancement
- defined here will be implemented.
-
- Within Britain, the wider audience aimed at is
- centred on the Transport Service Implementors' Group.
- For this group, the aim of the document will be well
- understood - it is defining a service enhancement
- similar to the one that is already defined for X25 and
- the ones they are defining for their local campus
- networks. The aim is to provide a common transport
- service for all these systems. They will be unfamiliar
- with the detailed nature of the TCP itself, but this is
- not particularly important. The major interest of the
- document lies in the fact that the system being
- enhanced is not an ordinary local network, but an
- entire family of networks, and the resultant
- enhancement will make possible direct authorised access
- between UK and US hosts. I would also like to point out
- the issue of separating Yellow Book enhancements from
- ordinary uses of a network service. This issue is not
- addressed by the X25 enhancement specification.
-
- Much of the US Internetwork Group is likewise
- unfamiliar with the concepts and details of the Yellow
- Book Transport Service. A summary of these concepts
- will be made available in a later IEN. For them, the
- document will be of interest in that it shows how to
- coordinate two very different approaches to
- internetworking. The Catenet, based on TCP, can be
- described as a strongly connected internetwork system,
- with common transport protocols and a common address
- space. The UK Transport Service takes an approach based
- on providing a common service interface, which leads to
- a weakly connected system with common service protocols
- and no common address space. Within this approach, the
- entire Internet system appears as a single component
-
-
- Bennett 11 INDRA 965
-
- Yellow Book above TCP
-
-
-
- network, as delimited by the TCP and its address space.
-
-
- 6. References
-
- [1] - PSS User Forum Study Group Three: "A Network
- Independent Transport Service" SG3/CP(80)2.
- February 1980.
-
- [2] - Information Sciences Institute: "Transmission
- Control Protocol" IEN 129.January 1980.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Bennett 12 INDRA 965
-